package demo3

import "sync"

// 单利设计模式

type Singleton struct{}

var singleton *Singleton
var once sync.Once

// 单利模式
func GetInstance() *Singleton {
	once.Do(func() {
		// 底层实现了原子操作来确认实例的次数
		singleton = &Singleton{}
	})
	return singleton
}
